使用原生 Node 模块


使用 NPM 安装

针对 LTS 版本

使用相同版本的 Node.js 和 NW.js

以下说明仅在您使用相同版本的 Node.js 和 NW.js 时有效。

如果您使用的是 LTS 版本,则通过 npm 安装的原生模块可以在进行以下修改后得到支持。

针对非 LTS 版本

如果您使用的是非 LTS 版本,则需要全局预安装 nw-gyp 来构建模块,因为 V8 中的 ABI 存在差异。以下说明也适用于 LTS 版本。

要为 NW.js 安装原生模块,请在您的终端中运行以下命令

# Install nw-gyp globally
npm install -g nw-gyp
# Setup target NW.js version
export npm_config_target=0.18.5
# Setup build architecture, ia32 or x64
export npm_config_arch=x64
export npm_config_target_arch=x64
# Setup env for modules built with node-pre-gyp
export npm_config_runtime=node-webkit
export npm_config_build_from_source=true
# Setup nw-gyp as node-gyp
export npm_config_node_gyp=$(which nw-gyp)
# Run npm install
npm install

Windows 说明

您需要安装一个编译器。您可以通过安装 Visual C++ Build Tools 来获取一个编译器。您还需要 Python 2.7(不支持 3.x 版本)。
npm_config_node_gyp 环境变量必须设置为 path\to\global\node_modules\nw-gyp\bin\nw-gyp.js,而不是 nw-gyp.cmd 批处理脚本。这是一个 npm 的 bug

在 Windows 中,您必须使用 set 而不是 export 来设置环境变量。以下是一个完整的示例(Windows 10,Visual C++ Build Tool v2015)

set PYTHON=C:\Python27\python.exe
set npm_config_target=0.21.6
set npm_config_arch=x64
set npm_config_runtime=node-webkit
set npm_config_build_from_source=true
set npm_config_node_gyp=C:\Users\xxxxxxxxx\AppData\Roaming\npm\node_modules\nw-gyp\bin\nw-gyp.js
npm install --msvs_version=2015

手动重建

建议使用完整的 NPM 安装

在切换 NW.js 版本后,建议删除 node_modules 文件夹并执行完整的 npm install,如 上述说明

切换到新版本的 NW.js 后,您可以使用以下工具重建每个原生模块,无需重新安装所有模块。由于构建原生模块需要 binding.gyp,您可以通过查找 binding.gyp 文件轻松定位所有原生模块。

重建所有原生模块

确保您重建了所有原生模块。否则,您可能会遇到各种问题,甚至崩溃。如果手动重建对您无效,请尝试执行完整的 npm install。

nw-gyp

nw-gyp 是对 node-gyp 的修改,以支持 NW.js 特定的头文件和库。

用法与 node-gyp 相同,只是您需要手动指定 NW.js 的版本和架构 (x64ia32)。

npm install -g nw-gyp
cd myaddon
nw-gyp rebuild --target=0.13.0 --arch=x64

有关更多详细信息,请参阅 https://github.com/nwjs/nw-gyp

node-pre-gyp

一些包使用 node-pre-gyp,它支持通过使用 node-gypnw-gyp 为 Node.js 和 NW.js 构建。

node-pre-gyp 的用法如下

npm install -g node-pre-gyp
cd myaddon
node-pre-gyp build --runtime=node-webkit --target=0.13.0 --target_arch=x64

有关更多详细信息,请参阅 https://github.com/mapbox/node-pre-gyp